home *** CD-ROM | disk | FTP | other *** search
/ MASPC 1 / MASPC_1.iso / Demos / Demo DIV / DATA / PRG / TUTOR / TUTOR0B.PRG < prev    next >
Encoding:
Text File  |  1997-12-03  |  2.8 KB  |  78 lines

  1.  
  2. //-----------------------------------------------------------------------
  3. // TITULO: Tutorial 0
  4. // AUTOR:  Daniel Navarro
  5. // FECHA:  15/09/97
  6. //-----------------------------------------------------------------------
  7.  
  8. PROGRAM Tutorial_0;
  9. BEGIN
  10.     load_fpg("tutorial\tutor0.fpg"); // Se carga el fichero de gráficos
  11.     put_screen(0,2);  // Se pone el gráfico número 2 como fondo de pantalla
  12.     nave();           // Se crea el proceso tipo "nave"
  13.  
  14.     LOOP
  15.         // Si un número al azar entre 0 y 100 es menor que 30, entonces crea
  16.         // un proceso tipo "enemigo" en la parte superior de la pantalla
  17.         IF (rand(0,100)<30)
  18.             enemigo(rand(0,320),rand(-4,4),rand(6,12));
  19.         END
  20.         FRAME;        // Pasa a la siguiente imagen del juego
  21.     END
  22. END
  23.  
  24. //-----------------------------------------------------------------------
  25. // Maneja la nave protagonista
  26. //-----------------------------------------------------------------------
  27.  
  28. PROCESS nave()
  29. BEGIN
  30.     graph=1; x=160; y=180;    // Selecciona el gráfico y las coordenadas
  31.  
  32.     LOOP
  33.         x=mouse.x;            // Pone la nave en la coordenada x del ratón
  34.         IF (mouse.left)       // Al pulsar el botón izquierdo del ratón se
  35.             disparo(x,y-20);  // crea un proceso de tipo "disparo"
  36.         END
  37.         FRAME;                // Muestra la siguiente imagen de la nave
  38.     END
  39. END
  40.  
  41. //-----------------------------------------------------------------------
  42. // Maneja los disparos de la nave protagonista
  43. // Entradas: Coordenadas del gráfico
  44. //-----------------------------------------------------------------------
  45.  
  46. PROCESS disparo(x,y)
  47. BEGIN
  48.     graph=3;    // Se selecciona el gráfico
  49.  
  50.     REPEAT
  51.         y-=16;  // Se mueve hacia arriba 16 puntos
  52.         FRAME;  // Muestra la siguiente imagen
  53.     UNTIL (y<0) // Repite hasta que se salga por la parte superior
  54. END
  55.  
  56. //-----------------------------------------------------------------------
  57. // Enemigos que caen de la parte superior de la pantalla
  58. // Entradas: Coordenada x, incremento x e incremento y (por cada imagen)
  59. //-----------------------------------------------------------------------
  60.  
  61. PROCESS enemigo(x,inc_x,inc_y)
  62. BEGIN
  63.     graph=4;            // Define el gráfico del proceso (el 4º del fichero)
  64.     y=-20;              // Sitúa el gráfico en la parte superior de pantalla
  65.     size=rand(25,100);  // Se escoge al azar su tamaño (entre 25% y 100%)
  66.  
  67.     REPEAT
  68.       x+=inc_x;         // Le suma el incremento x a su coordenada x
  69.       y+=inc_y;         // Igual con la coordenada y
  70.       FRAME;
  71.     // Repite hasta que se salga de la pantalla o choque con un disparo
  72.     UNTIL (y>220 OR collision(TYPE disparo));
  73.  
  74.     FROM graph=5 TO 10; // Muestra una explosión en la posición del enemigo
  75.         FRAME;          // (los gráficos de la explosión son del 5 al 10)
  76.     END
  77. END
  78.